package org.langcom.state;

import org.langcom.logic.ILogic;


public interface IStateTransition {

	public IState getFromState();
	
	public void setFromState(IState state);
	
	public IState getToState();
	
	public void setToState(IState state);
	
	public ILogic getTransitionLogic();
	
	public void setTransitionLogic(ILogic logic);
	/**
	 * Here must be checked the logic of transition between states and true must be returned when
	 * conditions of transition is take plase.
	 */
	public boolean checkState();
	/**
	 * The on transition method runs when transition between states occurs.
	 */
	public void run();
}
